/* tslint:disable */
/* eslint-disable */
/**
 * 邢台联邦 通用权限开发平台
 * 让 .NET 开发更简单、更通用、更流行。整合最新技术，模块插件式开发，前后端分离，开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！</font></b></u>
 *
 * OpenAPI spec version: 1.0.0
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

export interface ConfigurationParameters {
	apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
	username?: string;
	password?: string;
	accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
	basePath?: string;
	baseOptions?: any;
}

export class Configuration {
	/**
	 * parameter for apiKey security
	 *
	 * @param name security name
	 * @memberof Configuration
	 */
	apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);

	/**
	 * parameter for basic security
	 *
	 * @type {string}
	 * @memberof Configuration
	 */
	username?: string;

	/**
	 * parameter for basic security
	 *
	 * @type {string}
	 * @memberof Configuration
	 */
	password?: string;

	/**
	 * parameter for oauth2 security
	 *
	 * @param name security name
	 * @param scopes oauth2 scope
	 * @memberof Configuration
	 */
	accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);

	/**
	 * override base path
	 *
	 * @type {string}
	 * @memberof Configuration
	 */
	basePath?: string;

	/**
	 * base options for axios calls
	 *
	 * @type {any}
	 * @memberof Configuration
	 */
	baseOptions?: any;

	constructor(param: ConfigurationParameters = {}) {
		this.apiKey = param.apiKey;
		this.username = param.username;
		this.password = param.password;
		this.accessToken = param.accessToken;
		this.basePath = param.basePath;
		this.baseOptions = param.baseOptions;
	}
}
